package swu.edu.cn.javaee.service;

import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import swu.edu.cn.javaee.component.Image;
import swu.edu.cn.javaee.entity.Product;
import swu.edu.cn.javaee.entity.ProductInfo;
import swu.edu.cn.javaee.mapper.ProductMapper;

import java.util.List;

import static swu.edu.cn.javaee.component.Signal.*;

@Service
public class ProductService {
    @Resource
    private ProductMapper productMapper;


    /**
     * 添加产品
     * */
    public String saveProduct(Product product){
        String filepath= Image.GenerateImage(product.getPhoto());
        product.setPhoto(filepath);
        System.out.println("Service:saveProduct"+filepath);
        productMapper.saveProduct(product);
        if(product.getpUid()!=null){
            return SUCCESS_CODE;
        }
        else {
            return FAILED_CODE;
        }
    }
    /**
     * 查询某个商户的所有商品信息
     * */
    public ProductInfo queryProduct(String pUid){
        ProductInfo productInfo=new ProductInfo();
        Product product=new Product();
        int count=productMapper.queryCount(pUid);
        List<Product> list=productMapper.queryProduct(pUid);
        if(list.size()!=0){
            productInfo.setSignal(SUCCESS_CODE);
            productInfo.setCount(String.valueOf(count));
            productInfo.setProducts(list);
            System.out.println(productInfo);
        }
        else {
            productInfo.setSignal(FAILED_CODE_PRODUCT_NO_EXIST);
        }
        return productInfo;
    }


    /**
     * 修改商品信息
     * */
    public String updateProduct(Product product){
        Product product1=productMapper.queryPid(product.getPid());
        System.out.println("Service:update"+product.getPid());
        if(product1!=null){
            String filepath= Image.GenerateImage(product.getPhoto());
            product.setPhoto(filepath);
            System.out.println("Service：update"+filepath);
            productMapper.updateProduct(product);
            return SUCCESS_CODE;
        }
        else {
            return FAILED_CODE_PRODUCT_NO_EXIST;
        }
    }
    /**
     * 删除商品信息
     * */
    public String deleteProduct(String pid){
        Product product=productMapper.queryPid(pid);
        if(product!=null){
            productMapper.deleteProduct(pid);
            return SUCCESS;
        }
        else {
            return FAILED_CODE_PRODUCT_NO_EXIST;
        }
    }


    /**
     * 根据推荐值返回前五的产品
     * */
    public ProductInfo queryFProduct(String pUid){
        ProductInfo productInfo=new ProductInfo();
        List<Product> list=productMapper.queryByRecommend(pUid);
        if(list.size()!=0){
            productInfo.setCount("5");
            productInfo.setSignal(SUCCESS_CODE);
            productInfo.setProducts(list);
        }
        else {
            productInfo.setSignal(FAILED_CODE_PRODUCT_NO_EXIST);
        }
        return productInfo;
    }


}
